From 4cb93df41b33cf8134570c7490791f2bca31bc7a Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Mon, 4 Jan 2010 09:03:42 +0000 Subject: [PATCH] Revert 20726:ddb8c5e798f9 Signed-off-by: Jiang, Yunhong --- xen/arch/x86/numa.c | 12 ++++-------- xen/arch/x86/setup.c | 3 +-- xen/arch/x86/smpboot.c | 2 +- xen/arch/x86/x86_64/mm.c | 2 +- 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c index 6810b484ca..676ff37001 100644 --- a/xen/arch/x86/numa.c +++ b/xen/arch/x86/numa.c @@ -35,9 +35,6 @@ u8 memnodemap[NODEMAPSIZE]; unsigned char cpu_to_node[NR_CPUS] __read_mostly = { [0 ... NR_CPUS-1] = NUMA_NO_NODE }; -/* - * Keep BIOS's CPU2node information, should not be used for memory allocaion - */ unsigned char apicid_to_node[MAX_LOCAL_APIC] __cpuinitdata = { [0 ... MAX_LOCAL_APIC-1] = NUMA_NO_NODE }; @@ -291,15 +288,14 @@ static __init int numa_setup(char *opt) */ void __devinit init_cpu_to_node(void) { - int i, node; + int i; for (i = 0; i < NR_CPUS; i++) { u32 apicid = x86_cpu_to_apicid[i]; if (apicid == BAD_APICID) continue; - node = apicid_to_node[apicid]; - if ( node == NUMA_NO_NODE || !node_online(node) ) - node = 0; - numa_set_node(i, node); + if (apicid_to_node[apicid] == NUMA_NO_NODE) + continue; + numa_set_node(i,apicid_to_node[apicid]); } } diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 38a0f5cd39..5956dfcc05 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #ifdef CONFIG_COMPAT #include @@ -264,7 +263,7 @@ void __devinit srat_detect_node(int cpu) u32 apicid = x86_cpu_to_apicid[cpu]; node = apicid_to_node[apicid]; - if ( node == NUMA_NO_NODE || !node_online(node) ) + if ( node == NUMA_NO_NODE ) node = 0; numa_set_node(cpu, node); diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index ce18c7f0be..5220d5173a 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -913,7 +913,7 @@ static int __devinit do_boot_cpu(int apicid, int cpu) } #else if (!per_cpu(compat_arg_xlat, cpu)) - setup_compat_arg_xlat(cpu, cpu_to_node[cpu]); + setup_compat_arg_xlat(cpu, apicid_to_node[apicid]); #endif if (!idt_tables[cpu]) { diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c index 03b61cc34f..dfa12ad171 100644 --- a/xen/arch/x86/x86_64/mm.c +++ b/xen/arch/x86/x86_64/mm.c @@ -997,7 +997,7 @@ void __init subarch_init_memory(void) } if ( setup_compat_arg_xlat(smp_processor_id(), - cpu_to_node[0]) ) + apicid_to_node[boot_cpu_physical_apicid]) ) panic("Could not setup argument translation area"); } -- 2.30.2